1. Technical Field
Certain illustrative embodiments described herein relate to devices and processes for routing packets of information in network communications and, more specifically, to systems and methods for implementing route updates.
2. Background Information and Description of Related Art
Networks of computers such as intranets, local and wide area networks, and public networks such as the Internet typically exchange information in the form of packets/datagrams. In addition to data, a packet typically includes header section that contains information identifying the packet and indicating its origin and destination. The header can further include network protocol identifiers, which describe the version number of the protocol that is to be used to transmit the information through and amongst networks.
Network devices that transmit data packets and their associated headers amongst networks are known as “routers.” In order to be transmitted from one network to another, data packets are typically routed by one or more routers to one or more public networks, private networks and/or individual server/client computers. Routers often include a routing table that specifies the manner in which the data packets are transmitted from the input ports to the output ports of the routers based on the destinations of the packets. Routers can implement a dynamic routing process whereby each router exchanges with other routers through standard routing protocols (such as Routing Information Protocol (RIP) as e.g. defined in RFC 1058 dated June 1988 and available at “http://www.ietf.org/rfc/rfc1058.txt?number=1058” and/or Open Shortest Path First (OSPF) as e.g. defined and RFC 1583 dated March 1994 and available at http://www.ietf.org/rfc/rfc1583.txt?number=1583). The periodic route updates of such routing protocols provide information regarding how to route the packets along the paths by which the router is currently connected to other routers and networks. Upon receipt of routing update packets, such as a RIP or OSPF update, each router can process the update and record any new routing information, or network path descriptors, into its routing table.
Routers can have an open network architecture wherein the router includes a control plane that creates and manages the routing protocols, and a separate forwarding plane that forwards the packets pursuant to information specified e.g. in an associated forwarding table, sometimes called a FIB. In such architectures, the forwarding plane may include multiple forwarding elements managed by a single control element. In such cases, each forwarding element may contain both a RIB and a FIB, where a RIB typically contains the routing information that entities exchange via an inter-domain routing protocol, and the FIB typically contains the information that that the entities use to forward the inter-domain traffic.
Unfortunately, routing errors can occur if route updates are implemented at different times by the various forwarding elements controlled by the single control element. For instance, if a packet is received by a router that is processing route updates, the packet could be transmitted by an “updated” forwarding element to a “un-updated” forwarding element that drops the packet because it has not yet processed the route update. Further compounded the chance of routing errors occurring due to route update inconsistencies is the fact that the forwarding plane typically performs wire speed packet forwarding whereas the control plane operates at a somewhat slower speed.